import request from "@/utils/request";

const ONLINE_USER_BASE_URL = "system/onlineUser";

const OnlineUserAPI = {
  /**
   * 获取在线用户列表
   *
   * @returns 在线用户列表
   */
  getPage(queryParams: OnlineUserPageQuery) {
    return request<any, PageResult<OnlineUserPageVO[]>>({
      url: `${ONLINE_USER_BASE_URL}/page`,
      method: "get",
      params: queryParams,
    });
  },

  /**
   * 删除在线用户
   *
   * @param uuid 在线用户UUID
   */
  deleteById(uuid: string) {
    return request({
      url: `${ONLINE_USER_BASE_URL}/offline/${uuid}`,
      method: "delete",
    });
  },
};

export default OnlineUserAPI;

/**
 * 在线用户查询参数
 */
export interface OnlineUserPageQuery extends PageQuery {
  /**
   * 关键字(在线用户名称/编码)
   */
  keywords?: string;

  /**
   * 在线用户状态（1:在线，0:离线）
   */
  status?: number;
}

/**
 * 在线用户对象
 */
export interface OnlineUserPageVO {
  /**
   * 在线用户UUID
   */
  uuid: string;
  /**
   * 在线用户名称
   */
  username: string;
  /**
   * 在线用户昵称
   */
  nickname: string;
  /**
   * 在线用户部门
   */
  deptName: string;
  /**
   * 在线用户登录IP
   */
  ip: string;
  /**
   * 在线用户登录地点
   */
  ipAddress: string;
  /**
   * 在线用户浏览器
   */
  browser: string;
  /**
   * 在线用户操作系统
   */
  os: string;
  /**
   * 在线用户登录时间
   */
  loginTime: string;
  /**
   * 在线用户过期时间
   */
  expireTime: string;
}
